/**
 * 这个是sort方法里的那个比较函数的特殊的返回值，
 * 比较函数的参数 a 和 b 代表数组里的两个元素，
 * 如果 a 小于 b，排序后的数组 a 在 b 前面，
 * 此时返回一个负数 （即上面的 return -1）如果 a 等于 b，排序后两者位置不变，
 * 此时返回 0 （即上面的 return 0）如果 a 大于 b，
 * 排序后 a 在 b 后面， 返回一个正数 （即上面的 return 1）
 */
let arr = ['message', 'abc', 'kexi', 'ddf', 'mezse'] // 排序数组
// let arr = ["message", "abc", "dezd",'kexi']; // 排序数组
/**
 * 排序函数自定义排序规则
 * @param {*} a
 * @param {*} b
 * @returns
 */
let compute =  (a, b) => {
	let c = a.substring(0, 1)
	let d = b.substring(0, 1)
	if (c < d) {
		return -1
	}
	if (c > d) {
		return 1
	}
	return compute(a.substring(1), b.substring(1))
}

// arr.sort(compute)
arr.sort((a,b)=>{
  return a.localeCompare(b)
})
console.log('arr ', arr)
